#include "manager.h"
#include "ui_manager.h"
//管理员操作界面
#include <QDebug>
#include "change_cartable.h"

manager::manager(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::manager)
{
    ui->setupUi(this);
    //***************数据库代码
//    //安装数据库的驱动--》我电脑上用的是sqlite3
//    mybase=QSqlDatabase::addDatabase("QSQLITE");

//    //设置数据库的路径名
//    mybase.setDatabaseName("./1.db");

    //解决 数据库多次报错问题
    if (!QSqlDatabase::contains("test-connect"))
        mybase= QSqlDatabase::addDatabase("QSQLITE","test-connect");  //第一次打开数据库时，连接数据库。
    else
        mybase= QSqlDatabase::database("test-connect");   //数据库已经打开后，再次连接时，获取句柄。


    //    //设置数据库的路径名
        mybase.setDatabaseName("./1.db");
    //打开数据库
    bool ret=mybase.open();
    if(!ret)
    {
        qDebug()<<"打开数据库失败了!./1.db no open";
        return;
    }

    //在数据库中新建卡号 和 车牌号  进入时间  刷次数                   卡号     和  车牌号        进入时间    刷次数  车位 carbot
    QSqlQuery query(mybase);
    //执行新建表格语句    表的名字   car_in_out_table
   // ret=query.exec("create table if not exists producetable (name text,price float);");
    // ret=query.exec("create table if not exists producetable1 (rfid text,carid text,intime text);");
     //在数据库中新建卡号 和 车牌号  进入时间  刷次数                   卡号     和  车牌号        进入时间    刷次数  车位 carbot
   ret=query.exec("create table if not exists car_in_out_table (rfid  text,carid text ,intotime text,cs int,carbot text);");
    if(!ret)
    {
        qDebug()<<"新建表格失败的原因: "<<query.lastError().text();
        return;
    }
    //**************************


    //设置表格的列数
    ui->tableWidget->setColumnCount(6);
    //设置字段名称
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"RFID号"<<"车牌号"<<"进入时间"<<"刷卡次数"<<"停车位"<<"状态");
    //设置表格行数
    ui->tableWidget->setRowCount(30);
}

manager::~manager()
{
    delete ui;
}



//退出键
void manager::on_pushButton_clicked()
{
    QWidget *last =this->parentWidget();
    last->show();
    this->close();

}


//查看停车信息
void manager::on_pushButton_2_clicked()
{
    int i=0;
    //清空表格列表框
    ui->tableWidget->clear();

    //执行查询语句
    QSqlQuery query(mybase);
    bool ret=query.exec("select * from car_in_out_table;");
    if(!ret)
    {
        qDebug()<<"查询失败的原因: "<<query.lastError().text();
        return;
    }

    //循环遍历查询结果
    qDebug()<<"查询结果如下: ";
    while(query.next())
    {


       //在表格列表框中显示查询结果
        QString q1=query.value(0).toString();
        QString q2=query.value(1).toString();
        QString q3=query.value(2).toString();
        QString q4=query.value(3).toString();
        QString q5=query.value(4).toString();
        ui->tableWidget->setItem(i,0,new QTableWidgetItem(q1));
        ui->tableWidget->setItem(i,1,new QTableWidgetItem(q2));
        ui->tableWidget->setItem(i,2,new QTableWidgetItem(q3));
        ui->tableWidget->setItem(i,3,new QTableWidgetItem(q4));
        ui->tableWidget->setItem(i,4,new QTableWidgetItem(q5));
        i++;

    }
     ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"RFID号"<<"车牌号"<<"进入时间"<<"刷卡次数"<<"停车位"<<"状态");
}

void manager::on_pushButton_3_clicked()
{
    int i=0;
    //清空表格列表框
    ui->tableWidget->clear();

    //执行查询语句
    QSqlQuery query(mybase);
    bool ret=query.exec("select * from all_car_in_out_table;");
    if(!ret)
    {
        qDebug()<<"查询失败的原因: "<<query.lastError().text();
        return;
    }

    //循环遍历查询结果
    qDebug()<<"查询结果如下: ";
    while(query.next())
    {

       //在表格列表框中显示查询结果
        QString q1=query.value(0).toString();
        QString q2=query.value(1).toString();
        QString q3=query.value(2).toString();
        QString q4=query.value(3).toString();
        QString q5=query.value(4).toString();
        QString q6=query.value(5).toString();
        ui->tableWidget->setItem(i,0,new QTableWidgetItem(q1));
        ui->tableWidget->setItem(i,1,new QTableWidgetItem(q2));
        ui->tableWidget->setItem(i,2,new QTableWidgetItem(q3));
        ui->tableWidget->setItem(i,3,new QTableWidgetItem(q4));
        ui->tableWidget->setItem(i,4,new QTableWidgetItem(q5));
        ui->tableWidget->setItem(i,5,new QTableWidgetItem(q6));
        i++;

    }
     ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"RFID号"<<"车牌号"<<"进入时间"<<"刷卡次数"<<"停车位"<<"状态");
}

//修改信息
void manager::on_pushButton_5_clicked()
{
    change_cartable * c1=new change_cartable(this);
    this->hide();
    c1->show();
}
